Currently, a computer user enters data by keyboard, that is, by typing. To enter a system command or move the cursors, for example, the user moves her hand out of the home-row position.
System commands are menu selections by mouse, menu commands combining the Alt key with an alphabetic character (in the Microsoft Windows™ operating system) or shortcuts combining the Ctrl key and another character. All of these methods require the user to move her hands off of the normal home-row position to press the Ctrl or Alt key or to move the mouse. Also, a user generally glances away from the screen to the keyboard or mouse to enter the command, and the user generally glances down again to return her hand(s) to (the correct position on) the keyboard. The moving of the hands from the home-row position and the pausing to look at the hands slows the entry of data. Where the entry of data is time sensitive, the slow data entry is particularly critical.
Therefore there is a need to allow a user to more efficiently enter system commands. There is a need to allow a user to enter system commands without moving her hands from the home row position or moving her eyes from the monitor.
To achieve a high level of commercial success, a computer input system must operate with an extremely low error rate. Users have been reluctant to accept input error rates on the order of even 2%. Witness, for example, the failure of speech-input systems to achieve any significant degree of market acceptance.
Therefore there is a need to allow a user to more efficiently enter data with an extremely low error rate.
Macros are a prior-art means for entering input through a keyboard. Generally speaking, macros are an association of an invocation sequence and a data sequence. The data sequence is typically much longer or much more complex than the invocation sequence. When a user types the macro invocation sequence (macro input sequence, macro activation sequence), software recognizes that sequence and replaces the invocation sequence with the associated data sequence. The user is thereby spared having to type or even remember the longer or more complex data sequence.
Macros are not an error-free proposition, particularly where the invocation sequence is the simultaneous depressing of multiple keys. There are two types of macro input classification errors: a false positive, in which two sequential keystrokes are misclassified as simultaneous keystrokes, and a false negative, in which two simultaneous keystrokes are misclassified as sequential.
Accordingly, there is a need to allow a user to more efficiently enter data with an extremely low error rate, including eliminating as much as possible the misclassification of her input.
In the Microsoft Word™ word processor, the sequence Ctrl-[decreases the font size of a selection and Ctrl-] increases the font size of a selection. For a typical user, these keystrokes are not easily remembered.
Accordingly, there is a need for macro-invocation sequences that are more easily remembered.
Rollhaus et al., U.S. Pat. No. 4,638,306 (1987) and the related Rollhaus et al., U.S. Pat. No. 4,696,280 (1987) (together, “Rollhaus et al.” herein) teach keyboard entry. Rollhaus et al. respond to conventional sequential activation of individual keys, outputting individual letters associated with the activated keys. Rollhaus et al. also respond to chords of simultaneously activated multiple keys, using these chords to retrieve stored words from a dictionary. The stored words rather than the entered chords are treated as input. Rollhaus et al. allow an user to use enter both conventional key sequences and key chords. Feedback alerts the user of inadvertent chords.
Rollhaus et al. however, do not recognize autorepeat key events. Rollhaus et al. do not work with keyboards or operating systems with this feature.
Also, Rollhaus et al. have no provision to minimize false negatives. Rollhaus et al. determine macro invocation from the difference between the time of the last key down and the time of the last key up. If this difference is above a threshold, Rollhaus et al. assume a macro has been invoked.
These and other goals of the invention will be readily apparent to one of ordinary skill in the art on reading the background above and the description below.